home *** CD-ROM | disk | FTP | other *** search
/ Languguage OS 2 / Languguage OS II Version 10-94 (Knowledge Media)(1994).ISO / language / embedded / m68k / tutor.arc / DFDI.SA < prev    next >
Text File  |  1990-01-05  |  4KB  |  140 lines

  1. DFDI     IDNT      2,1       DF (Display registers)WITH disassembler 05/27/82
  2.          XDEF      DFCMD
  3.          XDEF      TDISPLY
  4.  SPC 1
  5.          XREF.S    BUFFER
  6.          XREF      DCODE68K
  7.          XREF      FIXBUF
  8.          XREF      OUT1CR
  9.          XREF      OUTPUT
  10.          XREF.S    OUTTO
  11.          XREF      PNTCLS
  12.          XREF      PNT4HX
  13.          XREF      PNT8HX
  14.          XREF      PUTHEX
  15.          XREF.S    REGA7
  16.          XREF.S    REGPC
  17.          XREF.S    REGS
  18.          XREF.S    REGSR
  19.          XREF.S    REGUS
  20.          XREF.S    XONOFF
  21.  SPC 2
  22.          SECTION.S 1
  23. SCREEN1  DS.L      1         PRINT THIS BEFORE TRACE DISPLAY
  24. SCREEN2  DS.L      1         PRINT THIS AFTER TRACE DISPLAY
  25.  
  26.  
  27.          SECTION   11
  28.  
  29. REGNAMES DC.L 'PCSR'   TABLE OF NAMES OF REGISTERS
  30.          DC.L 'USSS'
  31.          DC.W '??'                        END OF TABLE
  32.  PAGE
  33. DFCMD    DS        0         DF COMMAND  ENTRY
  34.          BRA.S     TD07
  35.  
  36. TDISPLY  BSR       FIXBUF    PRINT TRACE DISPLAY SUBROUTINE
  37.          TST.B     XONOFF+3
  38.          BNE.S     TD25      SHORT DISPLAY
  39.  
  40. TD07     BSR FIXBUF   PRINT PRELUDE
  41.          CLR.L  OUTTO      FORCE DISPLAY TO OPERATORS CONSOLE
  42.          MOVE.L SCREEN1,(A6)+
  43.          BEQ.S     TD09      SKIP PRELUDE
  44.          BSR OUTPUT
  45. TD09
  46.  SPC 1
  47.          LEA       REGNAMES(PC),A4   REGISTER NAMES
  48.          LEA       REGPC,A2  REGISTER DATA
  49.          BSR       FIXBUF    SET UP I/O BUFFER
  50.  SPC 1
  51. TD1      MOVE.W (A4)+,D0  GET REG NAME
  52.          MOVE.L (A2)+,D7  GET REG CONTENT
  53.          CMP.W #'??',D0   SEE IF AT END OF REGS
  54.          BNE.S TD4
  55.          BSR OUT1CR  PRINT BUFFER
  56.  SPC 1
  57.          MOVE.B #'D',D7  CLASS=DATA
  58.          LEA       REGS,A3  OFFSET
  59.          BSR PNTCLS  GO PRINT THE BLOCK
  60.  SPC 1
  61.          MOVE.B  #'A',D7  CLASS=ADDRESS
  62.          LEA       REGS+32,A3 OFFSET
  63.          BSR PNTCLS  GO PRINT THE BLOCK
  64.  SPC 1
  65.          BSR FIXBUF
  66.          MOVE.L    #20,D1  LOOP COUNTER
  67. TD27     MOVE.B #'-',(A6)+  FILL BUFFER WITH BOARDER
  68.          SUB.L #1,D1
  69.          BNE TD27
  70.  
  71. TD25     MOVE.L    REGPC,A4            DISASSEMBLE
  72.          MOVEM.L   (A4),D0-D2
  73.          MOVE.L    A6,A5
  74.          BSR       DCODE68K
  75.          LEA       BUFFER,A5
  76.  
  77.          BSR OUT1CR  PRINT
  78.  SPC 1
  79.          BSR FIXBUF  PRINT END STUFF FOR SCREEN CONTROL
  80.          MOVE.L SCREEN2,(A6)+
  81.          BEQ.S     TD39                SKIP END STUFF
  82.          BSR OUTPUT
  83. TD39     RTS   RETURN FOR MORE WORK
  84.  SPC 1
  85. TD4      MOVE.W D0,D2       PRINT REG NAME IN BUFFER
  86.          ASR.W #8,D0      MOVE IT OVER
  87.          MOVE.B D0,D3  SAVE REGISTER TYPE A,D,W,M ETC
  88.          MOVE.B D0,(A6)+  SAVE FIRST LETTER
  89.          MOVE.B D2,(A6)+ SAVE NEXT LETTER
  90.          MOVE.B #'=',(A6)+  EQUAL SIGN
  91.          CMP.W     #'US',D2            .                             2,1
  92.          BNE.S T44                     .                             2,1
  93.          MOVE.L    REGUS,D0            USER STACK                    2,1
  94.          BRA.S T449
  95.  SPC 1
  96. T44      CMP.W #'SS',D2  SUPER STACK IS SPECIAL
  97.          BNE.S T448
  98.          MOVE.L REGA7,D0  GET A7
  99.          BRA.S T449
  100.  SPC 1
  101. T448     MOVE.L D7,D0  REGISTER VALUE
  102.          CMP.W #'SR',D2   SEE IF STATUS REGISTER
  103.          BEQ.S TDCC
  104. T449     BSR PNT8HX                    FORMAT 8 HEX CHAR             2,1
  105. TD9      MOVE.B #' ',(A6)+    SPACE BETWEEN REGS
  106.          BRA TD1
  107.  SPC 1
  108. *   CONDITION CODE FORMAT
  109. *
  110. TDCC     MOVE.W D0,D3        SAVE FOR A MOMENT
  111.          BSR PNT4HX
  112.          MOVE.B #'=',(A6)+
  113.          MOVE.L #$80000054,D7         TRACE BIT
  114.          BSR.S TDCC9
  115.          MOVE.L #$20000053,D7   SUPERVISOR BIT
  116.          BSR.S TDCC9
  117.          MOVE.W D3,D0        INTERRUPT LEVEL
  118.          LSR.W #8,D0
  119.          AND.B     #$07,D0   "7" MAX IN SR FOR LEVEL
  120.          BSR PUTHEX
  121.          MOVE.L #$100058,D7        X BIT
  122.          BSR.S TDCC9
  123.          MOVE.L #$8004E,D7         N BIT
  124.          BSR.S TDCC9
  125.          MOVE.L #$4005A,D7         Z BIT
  126.          BSR.S TDCC9
  127.          MOVE.L #$20056,D7         V BIT
  128.          BSR.S TDCC9
  129.          MOVE.L #$10043,D7         C BIT
  130.          BSR.S TDCC9
  131.          BRA TD9
  132. *
  133. TDCC9    MOVE.L D7,D6         DUPLICATE STUFF
  134.          SWAP D6              GET BIT POSITION
  135.          AND.W D3,D6          SEE IF ON
  136.          BNE.S TDCC91
  137.          MOVE.B    #'.',D7             PUT IN PERIOD IF OFF
  138. TDCC91   MOVE.B D7,(A6)+      PUT IN LETTER IF ON
  139.          RTS
  140.          END